package frsf.cidisi.exercise.idemiatp.situationCalculus;

import java.util.Vector;

/*Clase que representa un camino entre 2 ciudades*/

public class Camino {
	
	private Vector<String> ruta; //Contiene una ciudad origen y otra destino
	private int distancia; //Contiene la distancia desde la ciudad origen a destino
	
	
	
	public Camino(){
		ruta = new Vector<String>();
	}
	
	/*METODOS*/
	
	public int getDistancia(){
		return distancia;
	}
	
	public String getNombreOrigen(){
		return ruta.firstElement();
	}
	
	public String getNombreDestino(){
		return ruta.lastElement();
	}
	

	public void setOrigen(String ciudad) {
		ruta.add(ciudad);
		
	}

	public void setDestino(String ciudad) {
		ruta.add(ciudad);
		
	}

	public void setDistancia(int dis) {
		distancia = dis;
	}

	public Camino clone(){
		Camino nuevo = new Camino();
		nuevo.setDestino(this.getNombreDestino());
		nuevo.setOrigen(this.getNombreOrigen());
		nuevo.setDistancia(this.getDistancia());
		return nuevo;
	}
	
	
	public boolean equals(Object obj){
		Camino c = (Camino) obj;
		if(this.distancia == c.distancia && compararCiudades(c))
			return true;
		return false;
	}

	private boolean compararCiudades(Camino c) {
		for(int i=0; i<this.ruta.size(); i++){
			if(!c.ruta.contains(this.ruta.elementAt(i)))
				return false;
		}
		return true;
	}

}
